home *** CD-ROM | disk | FTP | other *** search
- 10 REM
- 20 REM WEATHER FORECAST PROGRAM by Phil Baughn
- 30 REM
- 40 REM This software program is distributed as "SHAREWARE". You may
- 50 REM feel free to copy and revise it as you like as long as you do
- 60 REM not alter or remove the credit information in the program. If
- 70 REM you find that you have made some significant improvements and
- 80 REM additions to this package, please upload them to my attention
- 90 REM either at The MAILROOM RBBS or to Compuserve; User#76044,1535.
- 100 REM Enjoy! Phil Baughn
- 110 REM
- 120 REM Mailing address: The MAILROOM RBBS-PC
- 130 REM attn. Phil Baughn
- 140 REM 2050 Idle Hour Center
- 150 REM Lexington, KY 40502
- 160 REM Data: (606)293-5119
- 170 REM Voice: (606)268-0206
- 180 REM
- 190 REM Special Credit to Mssrs. Bernard N. Meisner and Leon F. Graves
- 200 REM who developed the Heat Index / Apparent Temperature Formula.
- 210 REM
- 220 GOSUB 830
- 230 REM GET WELCOME SCREEN AND CREDITS IN ABOVE LINE
- 240 REM GET MASTER WELCOME DOCUMENT IN FOLLOWING LINE
- 250 GOSUB 1100
- 260 REM
- 270 REM PRINT MAIN MENU
- 280 REM
- 290 CLS:COLOR 14:LOCATE 9,20:PRINT "1 - WEATHER FORECAST PROGRAM"
- 300 COLOR 11:LOCATE 11,20:PRINT "2 - WIND CHILL CALCULATION"
- 310 COLOR 12:LOCATE 13,20:PRINT "3 - TEMPERATURE HUMIDITY INDEX"
- 320 COLOR 13:LOCATE 15,20:PRINT "4 - HEAT INDEX CALCULATION"
- 330 COLOR 14:LOCATE 17,20:PRINT "5 - DEW POINT CALCULATION"
- 340 COLOR 9:LOCATE 5,5:INPUT "ENTER THE NUMBER OF THE WEATHER PROGRAM WHICH YOU WISH TO RUN ";CHOICE
- 350 REM
- 360 REM GET FORCASTING SUNROUTINE
- 370 REM
- 380 IF CHOICE=1 THEN GOSUB 1400 ELSE GOTO 430
- 390 GOTO 620
- 400 REM
- 410 REM GET WIND CHILL SUBROUTINE
- 420 REM
- 430 IF CHOICE=2 THEN GOSUB 2820 ELSE GOTO 480
- 440 GOTO 620
- 450 REM
- 460 REM GET TEMP-HUMIDITY SUBROUTINE
- 470 REM
- 480 IF CHOICE=3 THEN GOSUB 4090 ELSE GOTO 530
- 490 GOTO 620
- 500 REM
- 510 REM GET HEAT INDXE SUBROUTINE
- 520 REM
- 530 IF CHOICE=4 THEN GOSUB 3070 ELSE GOTO 580
- 540 GOTO 620
- 550 REM
- 560 REM GET DEW POINT SUBROUTINE
- 570 REM
- 580 IF CHOICE=5 THEN GOSUB 4550 ELSE GOTO 290
- 590 REM
- 600 REM LOOP OR QUIT
- 610 REM
- 620 LOCATE 24,14:INPUT "DO YOU WISH TO DO A DIFFERENT CALCULATION (Y/N)";D$
- 630 REM
- 640 REM LOOP
- 650 REM
- 660 IF D$="Y" OR D$="y" THEN GOTO 290
- 670 REM
- 680 REM QUIT WITH EPILOG SCREEN AND RESET COLORS TO NORMAL
- 690 REM
- 700 COLOR 9,0,0:CLS:LOCATE 9,23:PRINT "I hope you enjoyed WEATHER and"
- 710 LOCATE 11,21:PRINT "that your forecast was a good one."
- 720 LOCATE 15,20:PRINT "Let us here from you on The MAILROOM"
- 730 LOCATE 17,18:PRINT "Data (606)293-5119 - 2400 Baud Supported"
- 740 LOCATE 19,37:PRINT "- Phil Baughn"
- 750 COLOR 7,0,0:LOCATE 24,1
- 760 END
- 770 REM ~~~~~~~~~~~~~~PROGRAM ENDS HERE~~~~~~~~~~~~~~
- 780 REM
- 790 REM ~~~~~~~~SUBROUTINE MODULES BEGIN HERE~~~~~~~~
- 800 REM
- 810 REM WELCOME SCREEN AND CREDITS SUBROUTINE
- 820 REM
- 830 KEY OFF:CLS
- 840 WIDTH 80:COLOR 11,0:LOCATE 5,5:PRINT CHR$(201):LOCATE 5,75:PRINT CHR$(187)
- 850 LOCATE 20,5:PRINT CHR$(200):LOCATE 20,75:PRINT CHR$(188)
- 860 FOR N=6 TO 19
- 870 LOCATE N,5:PRINT CHR$(186)
- 880 LOCATE N,75:PRINT CHR$(186)
- 890 NEXT N
- 900 FOR N=6 TO 74
- 910 LOCATE 5,N:PRINT CHR$(205)
- 920 LOCATE 20,N:PRINT CHR$(205)
- 930 NEXT N
- 940 COLOR 13,0:LOCATE 7,31:PRINT "WEATHER FORCASTING"
- 950 LOCATE 9,28:PRINT "DEVELOPED FOR THE IBM-PC"
- 960 LOCATE 10,39:PRINT "BY"
- 970 LOCATE 11,35:PRINT "PHIL BAUGHN"
- 980 LOCATE 13,14:PRINT "Special Thanks For Module Improvements To Sean Gayle"
- 990 LOCATE 14,11:PRINT "Of Louisiana & Brad James - Meteorologist, WKYT, Lexington"
- 1000 LOCATE 16,20:PRINT "Distributed Through The MAILROOM RBBS-PC"
- 1010 LOCATE 17,29:PRINT "In Lexington, Kentucky"
- 1020 LOCATE 18,22:PRINT "(606)293-5119 24 Hours - 2400 Baud"
- 1030 LOCATE 19,23:PRINT "Latest Revision [4.4]; August 1986"
- 1040 FOR N=1 TO 9999
- 1050 NEXT N
- 1060 RETURN
- 1070 REM
- 1080 REM MAIN WELCOME DOCUMENT SUBROUTINE
- 1090 REM
- 1100 COLOR 14,1,1:CLS
- 1110 PRINT " "
- 1120 PRINT " "
- 1130 PRINT " This program will provide you with a very good forcast providing"
- 1140 PRINT " you supply the correct information as to barometric pressure and"
- 1150 PRINT " wind direction. This method has been used for ages by sailors &"
- 1160 PRINT " the tables themselves can still be found in almost all editions"
- 1170 PRINT " of The Farmers Almanac."
- 1180 PRINT " "
- 1190 PRINT " The other four programs which are included at present; Wind Chill,"
- 1200 PRINT " Dew Point, Temp/Humidity, & Heat Index; can be especially important"
- 1210 PRINT " when working outdoors. Wind Chill tells you the true FEEL of the"
- 1220 PRINT " temperature after the wind has it's effect. It's not always safe"
- 1230 PRINT " to simply look at the outdoor thermometer! Humidity also effects"
- 1240 PRINT " the temperature. Higher humidity levels cause it to effect your"
- 1250 PRINT " body as if it were hotter than the thermometer states."
- 1260 PRINT " "
- 1270 PRINT " Enjoy the program, please pass along any improvements which you"
- 1280 PRINT " may develop or additional modules which will fit well into the"
- 1290 PRINT " menu. Listing the programs, lines 1-200, [ ie- LIST -200 ] will"
- 1300 PRINT " provide you with more detailed contact information."
- 1310 PRINT " "
- 1320 PRINT " "
- 1330 PRINT " Press any key when ready..."
- 1340 IF INKEY$ ="" GOTO 1340
- 1350 COLOR 7,0,0:CLS
- 1360 RETURN
- 1370 REM
- 1380 REM WIND-BAROMETER FORECASTING SUBROUTINE
- 1390 REM
- 1400 CLS:COLOR 14:LOCATE 2,25:PRINT "WEATHER FORECAST PROGRAM"
- 1410 COLOR 5:LOCATE 4,32:PRINT DATE$:LOCATE 5,33:PRINT TIME$
- 1420 COLOR 3,0,0
- 1430 LOCATE 7,12
- 1440 INPUT "ENTER CURRENT BAROMETRIC PRESSURE ";CBP
- 1450 IF CBP<25 THEN 1430
- 1460 IF CBP>35 THEN 1430
- 1470 LOCATE 8,12
- 1480 INPUT "WIND DIRECTION IS CURRENTLY FROM THE ";PWD$
- 1490 IF PWD$="SW" OR PWD$="sw" THEN 1500 ELSE 1530
- 1500 LOCATE 9,12
- 1510 INPUT "PREVIOUS WIND DIRECTION WAS FROM THE ";PWD$
- 1520 GOTO 1650
- 1530 IF PWD$="SE" OR PWD$="se" THEN 1540 ELSE 1570
- 1540 LOCATE 9,12
- 1550 INPUT "PREVIOUS WIND DIRECTION WAS FROM THE ";PWD$
- 1560 GOTO 1730
- 1570 IF PWD$="S" OR PWD$="s" THEN 1610
- 1580 IF PWD$="N" OR PWD$="n" THEN 1610
- 1590 IF PWD$="NW" OR PWD$="nw" THEN 1610
- 1600 IF PWD$="NE" OR PWD$="ne" THEN 1610 ELSE 1810
- 1610 LOCATE 18,23
- 1620 COLOR 9
- 1630 PRINT "NO IMMEDIATE CHANGE IS FORECAST"
- 1640 COLOR 7,0,0:GOTO 2760
- 1650 IF PWD$="S" OR PWD$="s" THEN 1670
- 1660 IF PWD$="NW" OR PWD$="nw" THEN 1690 ELSE 1710
- 1670 PWD$="M"
- 1680 GOTO 1860
- 1690 PWD$="N"
- 1700 GOTO 1860
- 1710 PWD$="O"
- 1720 GOTO 1860
- 1730 IF PWD$="NE" OR PWD$="ne" THEN 1750
- 1740 IF PWD$="S" OR PWD$="s" THEN 1770 ELSE 1790
- 1750 PWD$="P"
- 1760 GOTO 1860
- 1770 PWD$="Q"
- 1780 GOTO 1860
- 1790 PWD$="R"
- 1800 GOTO 1860
- 1810 IF PWD$="E" OR PWD$="e" THEN 1830
- 1820 IF PWD$="W" OR PWD$="w" THEN 1850
- 1830 PWD$="S"
- 1840 GOTO 1860
- 1850 PWD$="T"
- 1860 COLOR 4:LOCATE 13,12:PRINT "WIND CONDITION CODE IS ",PWD$;
- 1870 COLOR 3,0,0
- 1880 IF CBP>30.01 THEN 2050
- 1890 IF CBP<29.81 THEN 2200
- 1900 LOCATE 10,12
- 1910 INPUT "IS PRESSURE RISING (R), FALLING (F), OR STEADY (S) ";BM$
- 1920 IF BM$="F" OR BM$="f" THEN 1930 ELSE 2000
- 1930 LOCATE 11,12
- 1940 INPUT "IS IT FALLING RAPIDLY (R) OR SLOWLY (S) ";BM$
- 1950 IF BM$="R" OR BM$="r" THEN 1960 ELSE 1980
- 1960 BM$="C6"
- 1970 GOTO 2270
- 1980 BM$="C5"
- 1990 GOTO 2270
- 2000 IF BM$="R" OR BM$="r" THEN 2010 ELSE 2030
- 2010 BM$="C7"
- 2020 GOTO 2270
- 2030 BM$="C0"
- 2040 GOTO 2270
- 2050 LOCATE 10,12
- 2060 INPUT "IS PRESSURE RISING (R), FALLING (F), OR STEADY (S) ";BM$
- 2070 IF BM$="F" OR BM$="f" THEN 2080 ELSE 2150
- 2080 LOCATE 11,12
- 2090 INPUT "IS IT FALLING RAPIDLY (R) OR SLOWLY (S) ";BM$
- 2100 IF BM$="R" OR BM$="r" THEN 2110 ELSE 2130
- 2110 BM$="C4"
- 2120 GOTO 2270
- 2130 BM$="C3"
- 2140 GOTO 2270
- 2150 IF BM$="S" OR BM$="s" THEN 2160 ELSE 2180
- 2160 BM$="C1"
- 2170 GOTO 2270
- 2180 BM$="C2"
- 2190 GOTO 2270
- 2200 LOCATE 10,12
- 2210 INPUT "IS THE PRESSURE RISING (R) OR FALLING (F) ";BM$
- 2220 IF BM$="R" OR BM$="r" THEN 2230 ELSE 2250
- 2230 BM$="C8"
- 2240 GOTO 2270
- 2250 BM$="C9"
- 2260 GOTO 2270
- 2270 COLOR 4:LOCATE 14,12:PRINT "BAROMETRIC CODE IS ",BM$
- 2280 COLOR 3,0,0
- 2290 IF PWD$="O" THEN 1610
- 2300 IF PWD$="R" THEN 1610
- 2310 LOCATE 17,18:PRINT "PLEASE WAIT - FORECAST BEING COMPUTED"
- 2320 FOR X=1 TO 3200:NEXT X
- 2330 LOCATE 17,18:PRINT " "
- 2340 IF PWD$="T" AND BM$="C8" THEN 2520
- 2350 IF PWD$="M" AND BM$="C7" THEN 2530
- 2360 IF PWD$="Q" AND BM$="C3" THEN 2550
- 2370 IF PWD$="Q" AND BM$="C4" THEN 2560
- 2380 IF PWD$="Q" AND BM$="C9" THEN 2570
- 2390 IF PWD$="P" AND BM$="C3" THEN 2590
- 2400 IF PWD$="P" AND BM$="C4" THEN 2600
- 2410 IF PWD$="P" AND BM$="C5" THEN 2610
- 2420 IF PWD$="P" AND BM$="C6" THEN 2620
- 2430 IF PWD$="P" AND BM$="C9" THEN 2570
- 2440 IF PWD$="S" AND BM$="C3" THEN 2640
- 2450 IF PWD$="S" AND BM$="C4" THEN 2660
- 2460 IF PWD$="S" AND BM$="C9" THEN 2700
- 2470 IF PWD$="N" AND BM$="C1" THEN 2720
- 2480 IF PWD$="N" AND BM$="C2" THEN 2740
- 2490 IF PWD$="N" AND BM$="C3" THEN 2750
- 2500 IF PWD$="N" AND BM$="C7" THEN 2530
- 2510 GOTO 1610
- 2520 LOCATE 17,30:COLOR 13:PRINT "CLEARING AND COLDER":GOTO 2760
- 2530 LOCATE 17,20:COLOR 13:PRINT "CLEARING WITHIN A FEW HOURS/"
- 2540 LOCATE 19,20:PRINT "FAIR FOR SEVERAL DAYS":GOTO 2760
- 2550 LOCATE 17,30:COLOR 13:PRINT "RAIN WITHIN 24 HOURS":GOTO 2760
- 2560 LOCATE 17,20:COLOR 13:PRINT "WIND INCREASING; RAIN WITHIN 24 HOURS":GOTO 2760
- 2570 LOCATE 17,15:COLOR 15:PRINT "SEVERE STORM IMMIMENT, FOLLOWED WITHIN 24 HOURS"
- 2580 LOCATE 19,15:PRINT "BY CLEARING. IN WINTER, COLDER TEMPERATURES.":GOTO 2760
- 2590 LOCATE 17,30:COLOR 13:PRINT "RAIN WITHIN 12 TO 18 HOURS":GOTO 2760
- 2600 LOCATE 17,20:COLOR 13:PRINT "WIND INCREASING; RAIN WITHIN 12 HOURS":GOTO 2760
- 2610 LOCATE 17,20:COLOR 13:PRINT "RAIN WILL CONTINUE FOR 1 TO 2 DAYS":GOTO 2760
- 2620 LOCATE 17,15:COLOR 13:PRINT "RAIN, WITH HIGH WIND, FOLLOWED WITHIN 36 HOURS BY"
- 2630 LOCATE 19,15:PRINT "CLEARING. IN WINTER - COLDER TEMPERATURES.":GOTO 2760
- 2640 LOCATE 17,15:COLOR 13:PRINT "SUMMER - LIGHT WINDS; RAIN MAY NOT FALL FOR"
- 2650 LOCATE 19,15:PRINT "SEVERAL DAYS. WINTER - RAIN WITHIN 24 HOURS":GOTO 2760
- 2660 LOCATE 17,15:COLOR 13:PRINT "SUMMER RAIN PROBABLE 12/24 HOURS. WINTER"
- 2670 LOCATE 19,15:PRINT "RAIN OR SNOW, INCREASING WIND; BAD WEATHER"
- 2680 LOCATE 21,15:PRINT "OFTEN SETS IN WHEN BAROMETER BEGINS TO FALL AND"
- 2690 LOCATE 23,15:PRINT "WINDS SET IN FROM THE NORTHEAST.":GOTO 2760
- 2700 LOCATE 17,15:COLOR 15:PRINT "SEVERE NORTHEAST GALE AND HEAVY PRECIPITATION,"
- 2710 LOCATE 19,15:PRINT "IN WINTER - HEAVY SNOW FOLLOWED BY A COLD WAVE":GOTO 2760
- 2720 LOCATE 17,20:COLOR 13:PRINT "CONTINUED FAIR WEATHER WITH"
- 2730 LOCATE 19,20:PRINT "NO DECIDED TEMPERATURE CHANGE":GOTO 2760
- 2740 LOCATE 17,20:COLOR 13:PRINT "FAIR, FOLLOWED WITHIN 2 DAYS BY RAIN":GOTO 2760
- 2750 LOCATE 17,15:COLOR 13:PRINT "FAIR FOR 2 DAYS WITH SLOWLY RISING TEMPERATURES"
- 2760 COLOR 7,0,0:LOCATE 24,17:INPUT "DO YOU WISH TO RUN ANOTHER FORECAST (Y/N)";L$
- 2770 IF L$="Y" OR L$="y" THEN GOTO 1400
- 2780 RETURN
- 2790 REM
- 2800 REM WIND CHILL SUBROUTINE
- 2810 REM
- 2820 CLS:COLOR 11:LOCATE 2,27:PRINT "WIND CHILL CALCULATION"
- 2830 COLOR 5:LOCATE 4,34:PRINT DATE$:LOCATE 5,35:PRINT TIME$
- 2840 COLOR 3,0,0:KEY OFF:LOCATE 7,12
- 2850 INPUT "ENTER TEMPERATURE IN FAHRENHEIT ";T
- 2860 LOCATE 8,12
- 2870 INPUT "ENTER WIND SPEED IN MILES PER HOUR ";V
- 2880 T1=T:V=(V*1609.35)/(3600):TC=33-((T-32)*(5/9))
- 2890 H=(10.45+(SQR(V)*10)-V)*TC:X=H-506.784
- 2900 IF X<0 THEN X1=T1:GOTO 3000
- 2910 X1=50-(X/12.3):X1=INT(((X1*10)+5)/10)
- 2920 COLOR 3:LOCATE 11,19:PRINT "PLEASE WAIT - WIND CHILL BEING COMPUTED"
- 2930 FOR ZZ=1 TO 1600:NEXT ZZ
- 2940 COLOR 4:LOCATE 13,17:PRINT "T1=T:V=(V*1069.35)/3600:TC=33-((T-32)*(5/9))"
- 2950 FOR ZZ=1 TO 800:NEXT ZZ
- 2960 LOCATE 14,20:PRINT "H=(10.45+(SQR(V)*10)-V)*TC:X=H-506.784"
- 2970 FOR ZZ=1 TO 800:NEXT ZZ
- 2980 LOCATE 15,21:PRINT "X1=50-(X/12.3):X1=INT(((X1*10)+5)/10)"
- 2990 FOR ZZ=1 TO 1600:NEXT ZZ
- 3000 COLOR 13:LOCATE 19,15:PRINT "WIND CHILL TEMPERATURE = ";X1;"DEGREES FAHRENHEIT"
- 3010 COLOR 7,0,0:LOCATE 24,19:INPUT "RUN ANOTHER WIND CHILL FACTOR (Y/N)";L$
- 3020 IF L$="Y" OR L$="y" THEN GOTO 2820
- 3030 RETURN
- 3040 REM
- 3050 REM HEAT INDEX SUBROUTINE
- 3060 REM
- 3070 CLS:COLOR 11:LOCATE 2,27:PRINT "HEAT INDEX CALCULATION"
- 3080 COLOR 5:LOCATE 4,34:PRINT DATE$:LOCATE 5,35:PRINT TIME$
- 3090 COLOR 3,0,0:KEY OFF:LOCATE 7,11
- 3100 INPUT "ENTER THE CURRENT TEMPERATURE IN DEGREES FAHRENHEIT ";TA
- 3110 U$="F"
- 3120 LOCATE 8,11
- 3130 INPUT "ENTER THE RELATIVE HUMIDITY (`50'= 50% ) ";RH
- 3140 COLOR 9:LOCATE 11,18:PRINT "PLEASE WAIT - HEAT INDEX BEING COMPUTED"
- 3150 FOR ZZ=1 TO 1600:NEXT ZZ
- 3160 COLOR 4:LOCATE 13,23:PRINT "Heat Index Is Also Refered To"
- 3170 FOR ZZ=1 TO 800:NEXT ZZ
- 3180 LOCATE 14,17:PRINT "As The Apparent Temperature. See The H/I"
- 3190 FOR ZZ=1 TO 800:NEXT ZZ
- 3200 LOCATE 15,18:PRINT "Explanation & Danger Table For Details."
- 3210 FOR ZZ=1 TO 1600:NEXT ZZ
- 3220 GOSUB 3530
- 3230 COLOR 11:LOCATE 19,19:PRINT "APPARENT TEMPERATURE = ";APPTEMP;" ";U$
- 3240 IF DF<0 THEN GOTO 3260
- 3250 GOTO 3270
- 3260 LOCATE 20,19:PRINT "SEVERE SULTRINESS..."
- 3270 COLOR 7,0,0:LOCATE 23,19:INPUT "RUN ANOTHER HEAT INDEX FACTOR (Y/N)";L$
- 3280 IF L$="Y" OR L$="y" THEN GOTO 3070
- 3290 LOCATE 24,16:INPUT "View H/I Explanation & Danger Table? (Y/N)";CT$
- 3300 IF CT$="N" OR CT$="n" THEN GOTO 3520
- 3310 COLOR 14,1,1:CLS
- 3320 PRINT " "
- 3330 PRINT " Your Present Calculated Heat Index Value Is" APPTEMP" "U$"."
- 3340 PRINT " "
- 3350 PRINT " When the Heat Index reaches 130 degrees or higher, Heat"
- 3360 PRINT " Strokes or Sunstrokes are HIGHLY likely with continued"
- 3370 PRINT " exposure! When the Heat Index ranges from 105 to 130"
- 3380 PRINT " degrees, sunstroke, heat exhaustion and heat cramps are"
- 3390 PRINT " likely with prolonged exposure and/or physical activity."
- 3400 PRINT " Heat Index ranges between 90 and 105 degrees indicate a"
- 3410 PRINT " possibility of heat cramps and heat exhaustion with"
- 3420 PRINT " prolonged exposure and/or physical activity."
- 3430 PRINT " "
- 3440 PRINT " Program calculations assume an adult, wearing long pants"
- 3450 PRINT " and a short sleeved shirt, walking in shade at 3.1 MPH"
- 3460 PRINT " with standard sea level air pressure, a wind speed of"
- 3470 PRINT " 5.6 MPH, and a vapor pressure of 1.6kPa. In effect, the"
- 3480 PRINT " calculations approximate the temperature that current"
- 3490 PRINT " conditions feel like to the average person."
- 3500 PRINT " "
- 3510 COLOR 7,0,0
- 3520 RETURN
- 3530 TC=TA
- 3540 IF U$="F" OR U$="f" THEN TC=(TA-32)*5/9
- 3550 ES=6.11*10^((7.567*TC)/(239.7+TC))
- 3560 E=.01*RH*ES
- 3570 GOTO 3610
- 3580 IF DF<0 THEN GOTO 3910
- 3590 IF U$="F" OR U$="f" THEN APPTEMP=32+1.8*APPTEMP
- 3600 RETURN
- 3610 TB=37:PB=5.65:Q=180:RS=.0387
- 3620 ZS=.0521:EHC=17.4:PHI2=.84
- 3630 R=.124:CHC=11.6:PINF=.1*E
- 3640 HER=4.18+.036*TC
- 3650 ERA=1/(EHC+HER)
- 3660 QV=Q*(.143-.00112*TC-.0168*PINF)
- 3670 EZA=.060606/EHC
- 3680 HR=3.35+.049*TC
- 3690 ARA=1/(CHC+HR)
- 3700 AZA=.060606/CHC
- 3710 Q2U=((TB-TC)+(PB-PINF)*ERA/(ZS+EZA))/(RS+ERA)
- 3720 QJ=(Q-QV-(1-PHI2)*Q2U)/PHI2
- 3730 K=(RS+ARA)+(ZS+AZA)/R-((TB-TC)+(PB-PINF)/R)/QJ
- 3740 L=(RS+ARA)*(ZS+AZA)
- 3750 L=(L-((TB-TC)*(ZS+AZA)+(PB-PINF)*ARA)/QJ)/R
- 3760 F=K*K-4*L
- 3770 IF F<0 THEN DF=-1
- 3780 IF F<0 THEN GOTO 3580
- 3790 RF=.5*(-K+SQR(F))
- 3800 DF=60*RF
- 3810 IF DF<0 THEN GOTO 3580
- 3820 W1=.2016
- 3830 W2=(1-PHI2)/(RS+ERA)
- 3840 W3=PHI2/(RS+RF+ARA)
- 3850 W4=159.0984
- 3860 W5=37
- 3870 W6=4.05*ERA/(ZS+EZA)
- 3880 W7=4.05*(RF+ARA)/(ZS+R*RF+AZA)
- 3890 APPTEMP=(-W4+W2*(W5+W6)+W3*(W5+W7))/(W1+W2+W3)
- 3900 GOTO 3580
- 3910 HC=12.3:HR=4.1+.028*TC
- 3920 RA=1/(HC+HR):ZA=.060606/HC
- 3930 QU=Q-QV
- 3940 FOR IT=1 TO 10
- 3950 ZS=((PB-PINF)*RA)/(QU*(RS+RA)-(TB-TC))-ZA
- 3960 IF ZS<0 THEN ZS=0
- 3970 R3=(ZS/600000!)^.2
- 3980 C=ABS(RS-R3)
- 3990 IF C<=.0001 THEN GOTO 4020
- 4000 RS=.5*(RS+R3)
- 4010 NEXT IT
- 4020 N1=159.0984:N2=37:N3=4.05*RA/(ZS+ZA)
- 4030 N4=(RS+RA):N5=.2016
- 4040 APPTEMP=(-N1+(N2+N3)/N4)/(N5+1/N4)
- 4050 GOTO 3590
- 4060 REM
- 4070 REM TEMP-HUMIDITY INDEX SUBROUTINE
- 4080 REM
- 4090 CLS:COLOR 12:LOCATE 2,26:PRINT "TEMPERATURE HUMIDITY INDEX"
- 4100 COLOR 5:LOCATE 4,34:PRINT DATE$:LOCATE 5,35:PRINT TIME$
- 4110 COLOR 3,0,0:KEY OFF:LOCATE 7,24:PRINT "THE TEMPERATURE HUMIDITY INDEX"
- 4120 LOCATE 8,21:PRINT "DETERMINES THE EFFECTIVE TEMPERATURE"
- 4130 LOCATE 11,12:INPUT "ENTER THE TEMPERATURE IN FAHRENHEIT ";T
- 4140 LOCATE 12,12:INPUT "ENTER THE RELATIVE HUMIDITY ";H
- 4150 LOCATE 15,15:PRINT "PLEASE WAIT - EFFECTIVE TEMPERATURE BEING COMPUTED"
- 4160 LOCATE 18,30:FOR C=1 TO 16
- 4170 COLOR (C):PRINT "!!!!!!!!!!!!!!!!!!!"
- 4180 LOCATE 18,30:C=C+1
- 4190 FOR ZXC=1 TO 400:NEXT ZXC
- 4200 NEXT C
- 4210 COLOR 3,0,0
- 4220 LOCATE 18,25:PRINT " "
- 4230 IF H>94 THEN A=((.195*T)-15) ELSE IF H>89 AND H<95 THEN A=((.18*T)-15)
- 4240 IF H>79 AND H<90 THEN A=((.1667*T)-15) ELSE IF H>69 AND H<80 THEN A=((.145*T)-15)
- 4250 IF H>59 AND H<70 THEN A=((.1233*T)-15) ELSE IF H<60 THEN A=((.085*T)-15)
- 4260 TH=(((.8*T)+15)+A)
- 4270 COLOR 13:LOCATE 20,10:PRINT "THE TEMPERATURE HUMIDITY INDEX = ";TH;"DEGREES FAHRENHEIT"
- 4280 COLOR 7,0,0:LOCATE 23,17:INPUT "ANOTHER TEMPERATURE HUMIDITY INDEX (Y/N)";L$
- 4290 IF L$="Y" OR L$="y" THEN GOTO 4090
- 4300 LOCATE 24,16:INPUT "View THI Explanation & Comfort Table? (Y/N)";CT$
- 4310 IF CT$="N" OR CT$="n" THEN GOTO 4330
- 4320 GOTO 4340
- 4330 RETURN
- 4340 COLOR 14,1,1:CLS:PRINT " "
- 4350 PRINT " Your Temperature-Humidity Index reading was "TH"."
- 4360 PRINT " "
- 4370 PRINT " Readings in excess of 70 represent the point where a few people"
- 4380 PRINT " begin to feel uncomfortable. Over 75, about 1/2 of all people"
- 4390 PRINT " will feel uncomfortable. Nearly all people will feel uncomfortable"
- 4400 PRINT " with readings over 79 with rapidly decreasing work efficiency"
- 4410 PRINT " begining with levels in excess of 84; and EXTREME DANGER with"
- 4420 PRINT " possibility of heat exhaustion and heat stroke begin with levels"
- 4430 PRINT " of 92 and higher."
- 4440 PRINT " "
- 4450 PRINT " The THI number, used to express the combined temperature-humidity"
- 4460 PRINT " effect provides a fairly good index of equivalent heat stress. In"
- 4470 PRINT " engineering, this combined index is refered to as `effective temp-"
- 4480 PRINT " erature'. The weather bureau has also been known to refer to it as"
- 4490 PRINT " the Discomfort Index. It is NOT the same as the `Heat Index' even"
- 4500 PRINT " though they both help to compute `Appearant' Temperatures.
- 4510 PRINT " "
- 4520 PRINT " "
- 4530 COLOR 7,0,0
- 4540 RETURN
- 4550 REM
- 4560 REM DEW POINT SUBROUTINE
- 4570 REM
- 4580 CLS:COLOR 10:LOCATE 2,28:PRINT "DEW POINT CALCULATION"
- 4590 COLOR 5:LOCATE 4,34:PRINT DATE$:LOCATE 5,35:PRINT TIME$
- 4600 COLOR 3,0,0:KEY OFF:LOCATE 7,12
- 4610 INPUT "ENTER TEMPERATURE IN FAHRENHEIT ";T
- 4620 LOCATE 8,12
- 4630 INPUT "ENTER THE RELATIVE HUMIDITY (`50' = 50%) ";DPRH
- 4640 T=(T-32)*5/9
- 4650 X=1-(.01*DPRH)
- 4660 TD=T-(14.55+.114*T)*X-((2.5+.007*T)*X)^3-(15.9+.117*T)*X^14
- 4670 TD=(TD*9/5)+32
- 4680 COLOR 3:LOCATE 11,19:PRINT "PLEASE WAIT - DEW POINT BEING COMPUTED"
- 4690 FOR ZZ=1 TO 1600:NEXT ZZ
- 4700 COLOR 4:LOCATE 13,23:PRINT "TF=(T-32)*5/9:X=1-(.01*DPRH)"
- 4710 FOR ZZ=1 TO 800:NEXT ZZ
- 4720 LOCATE 14,9:PRINT "TD=T-(14.55+.114*T)*X-((2.5+.007*T)*X)^3-(15.9+.117*T)*X^14"
- 4730 FOR ZZ=1 TO 800:NEXT ZZ
- 4740 LOCATE 15,30:PRINT "TD=(TD*9/5)+32"
- 4750 FOR ZZ=1 TO 1600:NEXT ZZ
- 4760 COLOR 13:LOCATE 19,21:PRINT "DEW POINT CALCULATION = ";TD
- 4770 COLOR 7,0,0:LOCATE 24,20:INPUT "CALCULATE ANOTHER DEW POINT (Y/N)";L$
- 4780 IF L$="Y" OR L$="y" THEN GOTO 4580
- 4790 RETURN
- 4800 REM ~~~~~~~~~~LAST LINE OF PROGRAM~~~~~~~~~